Me desvié de las indicaciones y usé velocity verlet para poder simular velocidades, posiciones y aceleraciones. Utilizando la fórmula de fuerza elástica, de momento solo he podido simular 2 partículas que rebotan entre sí. Con una constante elástica de k y una distancia d igual a 2, esta es la animación.
Agregando viscocidad de 0.1 proporcional a la velocidad. Esto cambió así. Donde podemos ver que llega un momento que dejan de oscilar o bien es mínima.
Antes de pasar a la fuerza para crear un angulo entre 3 partículas, debo crear una automatización para crear los bonds automáticamente dependiendo del número de partículas, y esta crearla en una función aparte, para poder implementar más fácilmente las cosas.
Estuve tieniendo muchos problemas para hacer paredes periodicas, asi que de momento usare paredes fijas con un potencial lenard jones. Lo cual de momento funciona.
Cree una funcion que crea cadenas y las posiciona dependiendo el numero de cadenas y particulas independientemente. Pero es bastante sencillo, ya que se crea a partir del centro.
Se necesita una entrada en forma de Array, como esta [2, 3, 6], donde cada elemento es un bond y cada dato es el numero de particulas de cada bond.
Un array asi, nos muestra algo como esto.
Despues de demasiadas horas tratando de calcular las fuerzas elasticas independientemente de cada bond, se logro. Aunque creo todavia hay algo extrano porque a bajas viscocidades, estamos hablando de 0.1 aproximadamente, la oscilacion no cede despues de 40 segundos. Pero con una viscocidad de 0.7 este es el resultado. Este comportamiento es a una distancia de 3.
Pero hay un aspecto muy importante en esto, y es las fuerzas de las paredes. Al principio intente hacerlas periodicas pero me di cuenta de lo complicado que me resultaria de momento implementarlo (Lo cual en un futuro lo hare), asi que cree paredes estaticas. Las cuales a pesar de que tenia la nocion de como hacerlo, se me complico demasiado (Sorpresa, como todo), pero al final fue un sucio signo. Pero al poner unos parametros curiosos, (este siendo de una distancia de bond de 4.9) esto se comporta asi.